In the society of today, enormous amounts of information are created each day. Much information is presented in the form of images. Further, large portions of the information are stored and presented electronically, for example on the Internet. Meanwhile, there is an increased usage of wireless connections to the Internet, wherein the data transfer rate is relatively low. Thus, there is a need for presenting information in a very compact form. This is especially important for images, since a normal digital image stored as an array of pixels is represented as a quite large data set.
Further, mobile phones incorporating a camera are becoming increasingly popular. Thus, the mobile phone must be able to handle digital images. Mobile phones or other handheld devices that handle images have a limited memory space and limited processing power. Therefore, if image processing is to be performed on such devices, the digital images need to be efficiently and intelligently stored in order to set low requirements on memory space and processing power.
For these reasons, there is a great interest in compressing images. A popular method of compressing images is the JPEG (Joint Photographic Experts Group) standard. The JPEG standard is defined in CCITT Rec. T.81.
However, for clarity, a short description of the image file format according to the JPEG standard is presented in the following.
The JPEG standard defines a lossy baseline coding system, which is based on the DCT-transformation, and an extended coding system for presenting the transformed image in smaller amount of data. When converting a digital image into JPEG file format, a DCT-transformation and quantization of the image is made, wherein each component of a color space model of the image is separately DCT-transformed. All the color components are represented as blocks, which are treated in sequence. The DCT-transformed blocks are thresholded and quantized in order to discard information of basis functions that have little influence on the perception of the image. The zeroth order coefficient (DC-coefficient) of each component of each block is stored as the difference to the preceding DC-coefficient using Huffman-coding. The higher order coefficients (AC-coefficients) are arranged sequentially, the sequence being obtained by a zigzag order from the array. The AC-coefficients are zero run length coded and further encoded with Huffman-coding.
The JPEG file format is developed in order to create a standard compression that substantially reduces the storage size of a digital image. Thus, the JPEG file format is not suited for manipulation of images. If there is a desire to process a digital image, it is most convenient to transfer the digital image back into a spatial domain representation. However, when processing images on a unit having small storage space, such as a mobile phone, it may not be possible to handle the large storage requirement of the digital image represented in spatial domain.
EP 1037165 describes a method for manipulating digital images stored in JPEG format. The bitstream of the JPEG image is prescanned in order to identify locations of image areas in the bitstream. Designated ones of these locations are stored in a prescan table in order to be easily accessed, whereby selected areas of the image may be accessed without the need to decode the entire bitstream when a portion of the image is to be manipulated. However, there is still a need to further increase the speed of image processing while maintaining low memory requirements.